The present invention is directed generally to job processing in a network system, and, more particularly, to print job processing wherein a particular printer in a printer network is selected as a function of user selected print job attributes.
In the field of computer printing, a print job such as a word processing document consists of printer commands and data that are sent in a single batch from an input device such as a computer to a printing device such as a printer. Printer control commands contain explicit attributes of the print job such as a selected paper size, media type, and priority. Page description language (PDL) instructions contain the data as well as formatting commands such as line width and page separation. The printer control commands are added by the printer driver as required by the print job itself and/or whatever the end user may specify using standardized menus provided by the print application. Software routines stored as firmware, for example, within the printer interpret the print job and print it.
In many computer systems, such as networked systems, a large number of output devices, such as printers, for example, are coupled to one or more host computers. Often printers and other output devices are shared on a network by more than one client or host computer. A client is any input machine, device or computer that sends a job to an output device. When an end user desires to effectuate one or more particular output functions, the end user initiates execution of appropriate commands to cause a particular one of the output devices to complete the desired function or functions.
For example, when it is desired to have one or more print functions performed to produce a desired printed document, an end user has to complete multiple steps in order to initiate the processing of a particular print job in the desired manner. Typically, these steps include, 1) identifying the appropriate printer and printer driver combination that provides the required job attributes, such as duplex or n-up printing, for example, and 2) setting up the host or client application and printer driver to print to the correct print queue for the particular print job to be processed. When many printers are available on a network, it is often necessary for an end user of a print client to choose among several printers when sending a print job to insure that the desired job can be performed.
However, oftentimes, insufficient information is available to the end user to allow the end user to choose an appropriate printer to meet the end user""s needs. Oftentimes, only the names of the printers coupled to the host computer and the network are provided to the end user with no additional information concerning the printers"" capabilities and attributes being provided. Further, the printer driver doesn""t necessarily provide all the necessary job processing attributes an end user may wish to specify for a particular print job, such as printing to the fastest device, or insuring that the appropriate media is available at the device at the time the print job is submitted, for example. These types of information processing may require yet another set of applications that are not necessarily provided within the printer driver. Quite often, the only print job attribute information available to the end user is the generic information provided by an application-specific pull-down menu, such as which pages to print, number of copies, and/or two-sided printing parameters, for example.
In a typical scenario, an end user desiring to submit a print job to effectuate one or more particular print functions must select a particular printer without adequate knowledge concerning the capabilities and attributes of the printers available to the network. Thus, the end user selects a printer which may or may not have the particular capabilities and attributes necessary to produce the desired printed document.
What is needed, therefore, is an improved means for an end user to select printer resources which provides a list of available print job attributes and printer capabilities thereby allowing the end user to specify required printer capabilities and print job attributes to produce a desired printed document.
In a preferred embodiment, the present invention provides a central print system in which print jobs are directed to a particular print resource based on a set of print job attributes specified by an end user at the time the print job is submitted. Thus the central print system of the invention provides intent-based printing allowing the end user to specify the end result of the printing operation rather than initially selecting a print resource using insufficient information and submitting a print job to a printer which may or may not have the required capabilities and print job attributes to produce the desired printed output.
In another preferred embodiment of the present invention, a central print system having a single print queue is serviced by multiple print resources wherein a set of supported job processing attributes for each print resource is specified. The central print system is embodied in a print job manager and an attribute manager included in a network print server. The attribute manager registers a set of job processing attributes for each print resource servicing the print queue and provides a list of available print job attributes to each client computer on the network from which an end user can specify particular job attributes to define a desired end result for a print job. When an end user submits a print job from the client computer to the print queue, the print job manager, using an algorithm to choose the right set of job processing tools, selects the optimum printer from the available print resources for the print job based on the end user selected print job attributes. Periodically, the attribute manager updates the client computer job processing attribute list, for example, as print resources are added to or deleted from the network. The central print system may include one or more add-on modules accessible by the print job manager which provide additional functionality to the print system not available in or required to be provided by a print resource. For example, an add-on module may be included in the print system which provides necessary page description language (PDL) conversions within the print system, such as converting print data from PostScript (R) to PCL (R).
In a another preferred embodiment, the present invention may be implemented as a method of selecting a printer for processing a print job that utilizes the central print system described above. The method preferably includes selecting one or more job processing attributes from a list of available job processing attributes and submitting a print job together with the selected job processing attributes to the print system print queue. An appropriate printer is then selected as a function of the selected job processing attributes and the print job is transmitted from the print queue to the selected printer. The method may include prioritizing one or more of the selected job processing attributes either at the time the job processing attributes are selected or when the print resource is selected. The method may also include updating the list of available job processing attributes, preferable at the time of each print job request.
Other aspects and advantages of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention. The claims alone, not the preceding summary or the following detailed description, define the invention.